/*

Libreria

*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <glpk.h>
#include "ourlib.h"

int print_arc(glp_arc*);

int main(void) {
	const int min_n = 5; 	// Minimo numero di nodi (incluso)
	const int max_n = 15;	// Massimo numero di nodi (incluso)
	const int min_w = 0;	// Minimo peso
	const int max_w = 255;	// Massimo peso

	glp_graph* G, *Greaded;
	char *filename = "file1";
	char *filenameout = "file2";
	char str[15];
	glp_arc* arcp;

	// Creazione grafo vuoto
	Greaded = custom_create_graph();
	// Creazione grafo casuale
	G = random_graph(min_n, max_n, min_w, max_w);
	
	//applico su ogni vertice di G la funzione print_arc
	apply_on_edges(print_arc,G);
	
	printf("---------------\n");
	
	arc_iterator(G,1);
	while((arcp = arc_iterator(G,0)) != NULL){
		generate_arc_name(arcp,str);
		printf("%s\n",str);
	}
	
	// Scrittura del grafo casuale su file
	custom_write_graph(G,filename);
	// Lettura del grafo da file
	custom_read_graph(Greaded,filename);
	// Scrittura del grafo letto da file
	custom_write_graph(Greaded,filenameout);
	return 0;
	
}

int print_arc(glp_arc* arcp) {	//stampa l'arco in input
	printf("Arco (%d,%d)\n",arcp->tail->i,arcp->head->i);
	return 0;
}
